﻿package com.rbac.system.service;

import com.rbac.system.common.Result;

/**
 * 邮箱验证服务接口
 */
public interface EmailVerificationService {
    
    /**
     * 发送注册验证码
     * @param email 邮箱地址
     * @return 发送结果
     */
    Result<Void> sendRegisterCode(String email);
    
    /**
     * 发送登录验证码
     * @param email 邮箱地址
     * @return 发送结果
     */
    Result<Void> sendLoginCode(String email);
    
    /**
     * 验证注册验证码
     * @param email 邮箱地址
     * @param code 验证码
     * @return 验证结果
     */
    Result<Void> verifyRegisterCode(String email, String code);
    
    /**
     * 验证登录验证码
     * @param email 邮箱地址
     * @param code 验证码
     * @return 验证结果
     */
    Result<Void> verifyLoginCode(String email, String code);
    
    /**
     * 检查邮箱是否已注册
     * @param email 邮箱地址
     * @return 是否已注册
     */
    boolean isEmailRegistered(String email);
    
    /**
     * 清除验证码
     * @param email 邮箱地址
     * @param type 验证码类型
     */
    void clearVerificationCode(String email, String type);
}


